<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="html/html; charset=utf-8" />
		<title>ISFSEvents Protocol Reference</title>
		<meta id="xcode-display" name="xcode-display" content="render"/>
		<link rel="stylesheet" type="text/css" href="../css/styles.css" media="all" />
		<link rel="stylesheet" type="text/css" media="print" href="../css/stylesPrint.css" />
		<meta name="generator" content="appledoc 2.2 (build 963)" />
	</head>
	<body>
		<header id="top_header">
			<div id="library" class="hideInXcode">
				<h1><a id="libraryTitle" href="../index.html">SFS2X API v1.3.7 </a></h1>
				<a id="developerHome" href="../index.html">gotoAndPlay() / A51 Integrated</a>
			</div>
			
			<div id="title" role="banner">
				<h1 class="hideInXcode">ISFSEvents Protocol Reference</h1>
			</div>
			<ul id="headerButtons" role="toolbar">
				<li id="toc_button">
					<button aria-label="Show Table of Contents" role="checkbox" class="open" id="table_of_contents"><span class="disclosure"></span>Table of Contents</button>
				</li>
				<li id="jumpto_button" role="navigation">
					<select id="jumpTo">
	<option value="top">Jump To&#133;</option>
	
	<option value="overview">Overview</option>
	
	
	
	
	<option value="tasks">Tasks</option>
	
	
	
	
	
	
	
	
	
	<option value="instance_methods">Instance Methods</option>
	
	<option value="//api/name/onAdminMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onAdminMessage:</option>
	
	<option value="//api/name/onBuddyAdd:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyAdd:</option>
	
	<option value="//api/name/onBuddyBlock:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyBlock:</option>
	
	<option value="//api/name/onBuddyError:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyError:</option>
	
	<option value="//api/name/onBuddyListInit:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyListInit:</option>
	
	<option value="//api/name/onBuddyMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyMessage:</option>
	
	<option value="//api/name/onBuddyOnlineStateUpdate:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyOnlineStateUpdate:</option>
	
	<option value="//api/name/onBuddyRemove:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyRemove:</option>
	
	<option value="//api/name/onBuddyVariablesUpdate:">&nbsp;&nbsp;&nbsp;&nbsp;- onBuddyVariablesUpdate:</option>
	
	<option value="//api/name/onConectionAttempHTTP:">&nbsp;&nbsp;&nbsp;&nbsp;- onConectionAttempHTTP:</option>
	
	<option value="//api/name/onConfigLoadFailure:">&nbsp;&nbsp;&nbsp;&nbsp;- onConfigLoadFailure:</option>
	
	<option value="//api/name/onConfigLoadSuccess:">&nbsp;&nbsp;&nbsp;&nbsp;- onConfigLoadSuccess:</option>
	
	<option value="//api/name/onConnection:">&nbsp;&nbsp;&nbsp;&nbsp;- onConnection:</option>
	
	<option value="//api/name/onConnectionLost:">&nbsp;&nbsp;&nbsp;&nbsp;- onConnectionLost:</option>
	
	<option value="//api/name/onConnectionResume:">&nbsp;&nbsp;&nbsp;&nbsp;- onConnectionResume:</option>
	
	<option value="//api/name/onConnectionRetry:">&nbsp;&nbsp;&nbsp;&nbsp;- onConnectionRetry:</option>
	
	<option value="//api/name/onDebugMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onDebugMessage:</option>
	
	<option value="//api/name/onExtensionResponse:">&nbsp;&nbsp;&nbsp;&nbsp;- onExtensionResponse:</option>
	
	<option value="//api/name/onInvitation:">&nbsp;&nbsp;&nbsp;&nbsp;- onInvitation:</option>
	
	<option value="//api/name/onInvitationReply:">&nbsp;&nbsp;&nbsp;&nbsp;- onInvitationReply:</option>
	
	<option value="//api/name/onInvitationReplyError:">&nbsp;&nbsp;&nbsp;&nbsp;- onInvitationReplyError:</option>
	
	<option value="//api/name/onLogin:">&nbsp;&nbsp;&nbsp;&nbsp;- onLogin:</option>
	
	<option value="//api/name/onLoginError:">&nbsp;&nbsp;&nbsp;&nbsp;- onLoginError:</option>
	
	<option value="//api/name/onLogout:">&nbsp;&nbsp;&nbsp;&nbsp;- onLogout:</option>
	
	<option value="//api/name/onMMOItemVariablesUpdate:">&nbsp;&nbsp;&nbsp;&nbsp;- onMMOItemVariablesUpdate:</option>
	
	<option value="//api/name/onModeratorMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onModeratorMessage:</option>
	
	<option value="//api/name/onObjectMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onObjectMessage:</option>
	
	<option value="//api/name/onPingPong:">&nbsp;&nbsp;&nbsp;&nbsp;- onPingPong:</option>
	
	<option value="//api/name/onPlayerToSpectator:">&nbsp;&nbsp;&nbsp;&nbsp;- onPlayerToSpectator:</option>
	
	<option value="//api/name/onPlayerToSpectatorError:">&nbsp;&nbsp;&nbsp;&nbsp;- onPlayerToSpectatorError:</option>
	
	<option value="//api/name/onPrivateMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onPrivateMessage:</option>
	
	<option value="//api/name/onProximityListUpdate:">&nbsp;&nbsp;&nbsp;&nbsp;- onProximityListUpdate:</option>
	
	<option value="//api/name/onPublicMessage:">&nbsp;&nbsp;&nbsp;&nbsp;- onPublicMessage:</option>
	
	<option value="//api/name/onRoomAdd:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomAdd:</option>
	
	<option value="//api/name/onRoomCapacityChange:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomCapacityChange:</option>
	
	<option value="//api/name/onRoomCapacityChangeError:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomCapacityChangeError:</option>
	
	<option value="//api/name/onRoomCreationError:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomCreationError:</option>
	
	<option value="//api/name/onRoomFindResult:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomFindResult:</option>
	
	<option value="//api/name/onRoomJoin:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomJoin:</option>
	
	<option value="//api/name/onRoomJoinError:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomJoinError:</option>
	
	<option value="//api/name/onRoomNameChange:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomNameChange:</option>
	
	<option value="//api/name/onRoomNameChangeError:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomNameChangeError:</option>
	
	<option value="//api/name/onRoomPasswordStateChange:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomPasswordStateChange:</option>
	
	<option value="//api/name/onRoomPasswordStateChangeError:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomPasswordStateChangeError:</option>
	
	<option value="//api/name/onRoomRemove:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomRemove:</option>
	
	<option value="//api/name/onRoomVariablesUpdate:">&nbsp;&nbsp;&nbsp;&nbsp;- onRoomVariablesUpdate:</option>
	
	<option value="//api/name/onSpectatorToPlayer:">&nbsp;&nbsp;&nbsp;&nbsp;- onSpectatorToPlayer:</option>
	
	<option value="//api/name/onSpectatorToPlayerError:">&nbsp;&nbsp;&nbsp;&nbsp;- onSpectatorToPlayerError:</option>
	
	<option value="//api/name/onSubscribeRoomGroup:">&nbsp;&nbsp;&nbsp;&nbsp;- onSubscribeRoomGroup:</option>
	
	<option value="//api/name/onSubscribeRoomGroupError:">&nbsp;&nbsp;&nbsp;&nbsp;- onSubscribeRoomGroupError:</option>
	
	<option value="//api/name/onUDPSocketConnect:">&nbsp;&nbsp;&nbsp;&nbsp;- onUDPSocketConnect:</option>
	
	<option value="//api/name/onUnsubscribeRoomGroup:">&nbsp;&nbsp;&nbsp;&nbsp;- onUnsubscribeRoomGroup:</option>
	
	<option value="//api/name/onUnsubscribeRoomGroupError:">&nbsp;&nbsp;&nbsp;&nbsp;- onUnsubscribeRoomGroupError:</option>
	
	<option value="//api/name/onUserCountChange:">&nbsp;&nbsp;&nbsp;&nbsp;- onUserCountChange:</option>
	
	<option value="//api/name/onUserEnterRoom:">&nbsp;&nbsp;&nbsp;&nbsp;- onUserEnterRoom:</option>
	
	<option value="//api/name/onUserExitRoom:">&nbsp;&nbsp;&nbsp;&nbsp;- onUserExitRoom:</option>
	
	<option value="//api/name/onUserFindResult:">&nbsp;&nbsp;&nbsp;&nbsp;- onUserFindResult:</option>
	
	<option value="//api/name/onUserVariablesUpdate:">&nbsp;&nbsp;&nbsp;&nbsp;- onUserVariablesUpdate:</option>
	
	
	
</select>
				</li>
			</ul>
		</header>
		<nav id="tocContainer" class="isShowingTOC">
			<ul id="toc" role="tree">
				
<li role="treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#overview">Overview</a></span></li>




<li role="treeitem" id="task_treeitem"><span class="nodisclosure"></span><span class="sectionName"><a href="#tasks">Tasks</a></span><ul>
	
</ul></li>









<li role="treeitem" class="children"><span class="disclosure"></span><span class="sectionName"><a href="#instance_methods">Instance Methods</a></span><ul>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onAdminMessage:">onAdminMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyAdd:">onBuddyAdd:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyBlock:">onBuddyBlock:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyError:">onBuddyError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyListInit:">onBuddyListInit:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyMessage:">onBuddyMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyOnlineStateUpdate:">onBuddyOnlineStateUpdate:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyRemove:">onBuddyRemove:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onBuddyVariablesUpdate:">onBuddyVariablesUpdate:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConectionAttempHTTP:">onConectionAttempHTTP:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConfigLoadFailure:">onConfigLoadFailure:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConfigLoadSuccess:">onConfigLoadSuccess:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConnection:">onConnection:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConnectionLost:">onConnectionLost:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConnectionResume:">onConnectionResume:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onConnectionRetry:">onConnectionRetry:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onDebugMessage:">onDebugMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onExtensionResponse:">onExtensionResponse:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onInvitation:">onInvitation:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onInvitationReply:">onInvitationReply:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onInvitationReplyError:">onInvitationReplyError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onLogin:">onLogin:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onLoginError:">onLoginError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onLogout:">onLogout:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onMMOItemVariablesUpdate:">onMMOItemVariablesUpdate:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onModeratorMessage:">onModeratorMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onObjectMessage:">onObjectMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onPingPong:">onPingPong:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onPlayerToSpectator:">onPlayerToSpectator:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onPlayerToSpectatorError:">onPlayerToSpectatorError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onPrivateMessage:">onPrivateMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onProximityListUpdate:">onProximityListUpdate:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onPublicMessage:">onPublicMessage:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomAdd:">onRoomAdd:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomCapacityChange:">onRoomCapacityChange:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomCapacityChangeError:">onRoomCapacityChangeError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomCreationError:">onRoomCreationError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomFindResult:">onRoomFindResult:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomJoin:">onRoomJoin:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomJoinError:">onRoomJoinError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomNameChange:">onRoomNameChange:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomNameChangeError:">onRoomNameChangeError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomPasswordStateChange:">onRoomPasswordStateChange:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomPasswordStateChangeError:">onRoomPasswordStateChangeError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomRemove:">onRoomRemove:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onRoomVariablesUpdate:">onRoomVariablesUpdate:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onSpectatorToPlayer:">onSpectatorToPlayer:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onSpectatorToPlayerError:">onSpectatorToPlayerError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onSubscribeRoomGroup:">onSubscribeRoomGroup:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onSubscribeRoomGroupError:">onSubscribeRoomGroupError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUDPSocketConnect:">onUDPSocketConnect:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUnsubscribeRoomGroup:">onUnsubscribeRoomGroup:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUnsubscribeRoomGroupError:">onUnsubscribeRoomGroupError:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUserCountChange:">onUserCountChange:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUserEnterRoom:">onUserEnterRoom:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUserExitRoom:">onUserExitRoom:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUserFindResult:">onUserFindResult:</a></span></li>
	
	<li><span class="nodisclosure"></span><span class="sectionName"><a href="#//api/name/onUserVariablesUpdate:">onUserVariablesUpdate:</a></span></li>
	
</ul></li>


			</ul>
		</nav>
		<article>
			<div id="contents" class="isShowingTOC" role="main">
				<a title="ISFSEvents Protocol Reference" name="top"></a>
				<div class="main-navigation navigation-top">
					<ul>
	<li><a href="../index.html">Index</a></li>
	<li><a href="../hierarchy.html">Hierarchy</a></li>
</ul>
				</div>
				<div id="header">
					<div class="section-header">
						<h1 class="title title-header">ISFSEvents Protocol Reference</h1>
					</div>		
				</div>
				<div id="container">	
					
					<div class="section section-specification"><table cellspacing="0"><tbody>
						<tr>
	<td class="specification-title">Conforms to</td>
	<td class="specification-value">IConfigLoader</td>
</tr><tr>
	<td class="specification-title">Declared in</td>
	<td class="specification-value">ISFSEvents.h</td>
</tr>
						</tbody></table></div>
					
                    
                    
					
					
					
					
					
					<div class="section section-tasks">
						<a title="Tasks" name="tasks"></a>
						<h2 class="subtitle subtitle-tasks">Tasks</h2>
						
						
						
						

						<ul class="task-list">
							<li>
	<span class="tooltip">
		<code><a href="#//api/name/onConnection:">&ndash;&nbsp;onConnection:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onConnectionLost:">&ndash;&nbsp;onConnectionLost:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onConnectionRetry:">&ndash;&nbsp;onConnectionRetry:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onConectionAttempHTTP:">&ndash;&nbsp;onConectionAttempHTTP:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onConnectionResume:">&ndash;&nbsp;onConnectionResume:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUDPSocketConnect:">&ndash;&nbsp;onUDPSocketConnect:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onConfigLoadSuccess:">&ndash;&nbsp;onConfigLoadSuccess:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onConfigLoadFailure:">&ndash;&nbsp;onConfigLoadFailure:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onLogin:">&ndash;&nbsp;onLogin:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onLoginError:">&ndash;&nbsp;onLoginError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onLogout:">&ndash;&nbsp;onLogout:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomAdd:">&ndash;&nbsp;onRoomAdd:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomRemove:">&ndash;&nbsp;onRoomRemove:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomCreationError:">&ndash;&nbsp;onRoomCreationError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomJoin:">&ndash;&nbsp;onRoomJoin:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomJoinError:">&ndash;&nbsp;onRoomJoinError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUserEnterRoom:">&ndash;&nbsp;onUserEnterRoom:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUserExitRoom:">&ndash;&nbsp;onUserExitRoom:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUserCountChange:">&ndash;&nbsp;onUserCountChange:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onPublicMessage:">&ndash;&nbsp;onPublicMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onPrivateMessage:">&ndash;&nbsp;onPrivateMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onModeratorMessage:">&ndash;&nbsp;onModeratorMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onAdminMessage:">&ndash;&nbsp;onAdminMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onObjectMessage:">&ndash;&nbsp;onObjectMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onExtensionResponse:">&ndash;&nbsp;onExtensionResponse:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomVariablesUpdate:">&ndash;&nbsp;onRoomVariablesUpdate:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUserVariablesUpdate:">&ndash;&nbsp;onUserVariablesUpdate:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onSubscribeRoomGroup:">&ndash;&nbsp;onSubscribeRoomGroup:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onSubscribeRoomGroupError:">&ndash;&nbsp;onSubscribeRoomGroupError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUnsubscribeRoomGroup:">&ndash;&nbsp;onUnsubscribeRoomGroup:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUnsubscribeRoomGroupError:">&ndash;&nbsp;onUnsubscribeRoomGroupError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onSpectatorToPlayer:">&ndash;&nbsp;onSpectatorToPlayer:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onSpectatorToPlayerError:">&ndash;&nbsp;onSpectatorToPlayerError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onPlayerToSpectator:">&ndash;&nbsp;onPlayerToSpectator:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onPlayerToSpectatorError:">&ndash;&nbsp;onPlayerToSpectatorError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomNameChange:">&ndash;&nbsp;onRoomNameChange:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomNameChangeError:">&ndash;&nbsp;onRoomNameChangeError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomPasswordStateChange:">&ndash;&nbsp;onRoomPasswordStateChange:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomPasswordStateChangeError:">&ndash;&nbsp;onRoomPasswordStateChangeError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomCapacityChange:">&ndash;&nbsp;onRoomCapacityChange:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomCapacityChangeError:">&ndash;&nbsp;onRoomCapacityChangeError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onRoomFindResult:">&ndash;&nbsp;onRoomFindResult:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onUserFindResult:">&ndash;&nbsp;onUserFindResult:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onInvitation:">&ndash;&nbsp;onInvitation:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onInvitationReply:">&ndash;&nbsp;onInvitationReply:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onInvitationReplyError:">&ndash;&nbsp;onInvitationReplyError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyMessage:">&ndash;&nbsp;onBuddyMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyListInit:">&ndash;&nbsp;onBuddyListInit:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyAdd:">&ndash;&nbsp;onBuddyAdd:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyRemove:">&ndash;&nbsp;onBuddyRemove:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyBlock:">&ndash;&nbsp;onBuddyBlock:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyOnlineStateUpdate:">&ndash;&nbsp;onBuddyOnlineStateUpdate:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyVariablesUpdate:">&ndash;&nbsp;onBuddyVariablesUpdate:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onBuddyError:">&ndash;&nbsp;onBuddyError:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onDebugMessage:">&ndash;&nbsp;onDebugMessage:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onPingPong:">&ndash;&nbsp;onPingPong:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onProximityListUpdate:">&ndash;&nbsp;onProximityListUpdate:</a></code>
	</span>
	
	
</li><li>
	<span class="tooltip">
		<code><a href="#//api/name/onMMOItemVariablesUpdate:">&ndash;&nbsp;onMMOItemVariablesUpdate:</a></code>
	</span>
	
	
</li>
						</ul>
						
					</div>
					
					
					
					
					
					
					
					
					
					<div class="section section-methods">
						<a title="Instance Methods" name="instance_methods"></a>
						<h2 class="subtitle subtitle-methods">Instance Methods</h2>
						
						<div class="section-method">
	<a name="//api/name/onAdminMessage:" title="onAdminMessage:"></a>
	<h3 class="subsubtitle method-title">onAdminMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired when a User receives an Admin message.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onAdminMessage:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>sender</em></dt>
			<dd><p>(SFSUser *) the sender of the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(NSString *) the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) an object with custom data</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired when a User receives an Admin message.</p>

<pre><code> -(void)onAdminMessage:(SFSEvent *)evt
 {
    NSLog(@"Admin says: %@", [evt.params objectForKey:@"message"]);
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/AdminMessageRequest.html">AdminMessageRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyAdd:" title="onBuddyAdd:"></a>
	<h3 class="subsubtitle method-title">onBuddyAdd:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a AddBuddyRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyAdd:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddy</em></dt>
			<dd><p>(SFSBuddy *) the Buddy that was added</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a AddBuddyRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/AddBuddyRequest.html">AddBuddyRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyBlock:" title="onBuddyBlock:"></a>
	<h3 class="subsubtitle method-title">onBuddyBlock:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a BlockBuddyRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyBlock:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddy</em></dt>
			<dd><p>(SFSBuddy *) the Buddy that was blocked/unblocked</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a BlockBuddyRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/BlockBuddyRequest.html">BlockBuddyRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyError:" title="onBuddyError:"></a>
	<h3 class="subsubtitle method-title">onBuddyError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed Buddy request, such as AddBuddy, RemoveBuddy etc&hellip;</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyError:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed Buddy request, such as AddBuddy, RemoveBuddy etc&hellip;</p>
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyListInit:" title="onBuddyListInit:"></a>
	<h3 class="subsubtitle method-title">onBuddyListInit:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a InitBuddyListRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyListInit:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddyList</em></dt>
			<dd><p>(NSArray *) a list of Buddy objects</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>myVariables</em></dt>
			<dd><p>(NSArray *) a list of the User&rsquo;s BuddyVariable(s)</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a InitBuddyListRequest.</p>

<p>After the Buddy List initialization the User will return to his previous Buddy state. His online/offline status, the Buddy state
and his persistent Buddy Variables will all be loaded and broadcast in the system. In particular the online status determines if the
User will appear online or not to other Users that have added him/her to their lists.</p>

<p>At this stage the custom <b>Buddy states</b> are also loaded and populated locally by the API.</p>

<pre><code> NSLog(@"Buddy States: " + [smartFox.buddyManager buddyStates]);
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/SFSBuddyVariable.html">SFSBuddyVariable</a></p></code></li>
			
			<li><code><p><a href="../Classes/InitBuddyListRequest.html">InitBuddyListRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyMessage:" title="onBuddyMessage:"></a>
	<h3 class="subsubtitle method-title">onBuddyMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a BuddyMessageRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyMessage:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddy</em></dt>
			<dd><p>(SFSBuddy *) the Buddy that updated the BuddyVariables</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>isItMe</em></dt>
			<dd><p>(NSNumber *) true if the Buddy is actually the current User</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(NSString *) a list with the names of the Variables that where changed/set</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) optional custom parameters</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a BuddyMessageRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/BuddyMessageRequest.html">BuddyMessageRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyOnlineStateUpdate:" title="onBuddyOnlineStateUpdate:"></a>
	<h3 class="subsubtitle method-title">onBuddyOnlineStateUpdate:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a GoOnlineRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyOnlineStateUpdate:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddy</em></dt>
			<dd><p>(SFSBuddy *) the Buddy that was has changed his online status</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>isItMe</em></dt>
			<dd><p>(NSNumber *) (contains a BOOL value) true if the Buddy is actually the current User</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a GoOnlineRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/GoOnlineRequest.html">GoOnlineRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyRemove:" title="onBuddyRemove:"></a>
	<h3 class="subsubtitle method-title">onBuddyRemove:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a RemoveBuddyRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyRemove:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddy</em></dt>
			<dd><p>(SFSBuddy *) the Buddy that was removed</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a RemoveBuddyRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/RemoveBuddyRequest.html">RemoveBuddyRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onBuddyVariablesUpdate:" title="onBuddyVariablesUpdate:"></a>
	<h3 class="subsubtitle method-title">onBuddyVariablesUpdate:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a SetBuddyVariablesRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onBuddyVariablesUpdate:(SFSBuddyEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>buddy</em></dt>
			<dd><p>(SFSBuddy *) the Buddy that updated the BuddyVariables</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>changedVars</em></dt>
			<dd><p>(NSArray *) a list with the names of the Variables that where changed/set</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>isItMe</em></dt>
			<dd><p>(NSNumber *) true if the Buddy is actually the current User</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a SetBuddyVariablesRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SFSBuddy.html">SFSBuddy</a></p></code></li>
			
			<li><code><p><a href="../Classes/SetBuddyVariablesRequest.html">SetBuddyVariablesRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConectionAttempHTTP:" title="onConectionAttempHTTP:"></a>
	<h3 class="subsubtitle method-title">onConectionAttempHTTP:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event notifies an attempt to establish an HTTP tunnel connection with SmartFoxServer 2X.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConectionAttempHTTP:(SFSEvent *)<em>evt</em></code></div>

    
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event notifies an attempt to establish an HTTP tunnel connection with SmartFoxServer 2X.</p>

<p>The following example shows how to handle a reconnection</p>

<pre><code> -(void)onConectionAttempHTTP:(SFSEvent *)evt
 {
    // Provide feedback to client on BlueBox(HTTP) connection attempt.
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConnectionRetry:">- onConnectionRetry:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnection:">- onConnection:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConfigLoadFailure:" title="onConfigLoadFailure:"></a>
	<h3 class="subsubtitle method-title">onConfigLoadFailure:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>Dispatched when an error occurs while loading the external SmartFox configuration file.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConfigLoadFailure:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(NSString *) the error message.</p>

<p>The following example shows how to handle a potential error in configuration loading.</p>

<pre><code>[smartFox loadConfig:@"testEnvironmentConfig.xml" connectOnSuccess:YES];

function onConfigLoadFailure:(SFSEvent *)evt
{
    NSLog(@"Failed loading config file: %@", [evt.params objectForKey:@"message"]);
}
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>Dispatched when an error occurs while loading the external SmartFox configuration file.</p>

<p>.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConfigLoadSuccess:">- onConfigLoadSuccess:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConfigLoadSuccess:" title="onConfigLoadSuccess:"></a>
	<h3 class="subsubtitle method-title">onConfigLoadSuccess:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>Dispatched when the external SmartFox configuration file has been loaded successfully.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConfigLoadSuccess:(SFSEvent *)<em>evt</em></code></div>

    
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>Dispatched when the external SmartFox configuration file has been loaded successfully.</p>

<p>This event is dispatched only if the <i>connectOnSuccess</i> parameter of the SmartFox2XClient::loadConfig:connectOnSuccess: method is set to NO; otherwise the connection is made and the related onConnection: event is fired.</p>

<p>No parameters are provided.</p>

<p>The following example shows how to handle a successful configuration loading.</p>

<pre><code> [smartFox loadConfig:@"testEnvironmentConfig.xml" connectOnSuccess:NO];

 function onConfigLoadSuccess(evt:SFSEvent):void
 {
     NSLog(@"Config file loaded, now connecting...");
     [smartFox connect:smartFox.currentIp port:smartFox.currentPort];
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConfigLoadFailure:">- onConfigLoadFailure:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConnection:" title="onConnection:"></a>
	<h3 class="subsubtitle method-title">onConnection:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event notifies the result of a connection attempt.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConnection:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>success</em></dt>
			<dd><p>(contains an NSNumber with BOOL in it) true if a connection was established, false otherwise.</p>

<p>The following example shows how to start a connection</p>

<pre><code>smartFox = [SmartFox2XClient smartFoxWithDebugMode:NO delegate:self];
[smartFox loadConfig:@"config.xml" connectOnSuccess:YES];

-(void)onConnection:(SFSEvent *)evt
{
    if ([[evt.params objectForKey:@"success"] boolValue])
    {
        NSLog(@"Connection was established");
    }
    else
    {
        NSLog(@"Connection failed");
    }
}
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event notifies the result of a connection attempt.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConnectionRetry:">- onConnectionRetry:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnectionResume:">- onConnectionResume:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnectionLost:">- onConnectionLost:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConnectionLost:" title="onConnectionLost:"></a>
	<h3 class="subsubtitle method-title">onConnectionLost:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event notifies of a disconnection from the Server.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConnectionLost:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>reason</em></dt>
			<dd><p>(contains NSString) the reason of the disconnection.</p>

<p>The following example shows how to handle a disconnection</p>

<pre><code>-(void)onConnectionLost:(SFSEvent *)evt
{
    NSLog(@"Connection was lost, Reason: %@", [evt.params objectForKey:@"reason"]);
}
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event notifies of a disconnection from the Server.</p>

<p>When possible the API will also provide a reason for the disconnection:</p>

<ul>
<li><b>Idle</b>: the connection was dropped because the User was inactive for too long</li>
<li><b>Manual</b>: the User requested the disconnection</li>
<li><b>Kick</b>: the connection was dropped because the User was kicked</li>
<li><b>Ban</b>: the connection was dropped because the User was banned</li>
<li><b>Unknown</b>: the connection was lost for reasons outside of the API (slow or bad connection, network problems etc&hellip;)</li>
</ul>

	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConnectionRetry:">- onConnectionRetry:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnectionResume:">- onConnectionResume:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnection:">- onConnection:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConnectionResume:" title="onConnectionResume:"></a>
	<h3 class="subsubtitle method-title">onConnectionResume:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched after a temporary disconnection, when the connection to the Server has been re-establisehd.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConnectionResume:(SFSEvent *)<em>evt</em></code></div>

    
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched after a temporary disconnection, when the connection to the Server has been re-establisehd.</p>

<p>SmartFoxServer 2X provides a powerful new feature that allows a broken connection to be re-established transparently
without loosing any of the current application state. This allows any player to get back in the game without fear of loosing
the match because of a sloppy internet connection or a sudden disconnection.</p>

<p>In case the re-connection attempts fail onConnectionLost: event will be fired.</p>

<p>The following example shows how to handle a reconnection</p>

<pre><code> -(void)onConnectionRetry:(SFSEvent *)evt
 {
    // Freeze your GUI and provide some feedback to the Player
 }

 -(void)onConnectionResume:(SFSEvent *)evt
 {
    // Unfreeze the GUI and let the player continue with the game...
 }

 -(void)onConnectionLost:(SFSEvent *)evt
 {
    NSLog(@"Ouch, connection was lost. Reason: %@", [evt.params objectForKey:@"reason"]);
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConnectionLost:">- onConnectionLost:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnectionResume:">- onConnectionResume:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnection:">- onConnection:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onConnectionRetry:" title="onConnectionRetry:"></a>
	<h3 class="subsubtitle method-title">onConnectionRetry:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event notifies a temporary disconnection from the Server followed by an immediate attempt to reconnect.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onConnectionRetry:(SFSEvent *)<em>evt</em></code></div>

    
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event notifies a temporary disconnection from the Server followed by an immediate attempt to reconnect.</p>

<p>SmartFoxServer 2X provides a powerful new feature that allows a broken connection to be re-established transparently
without loosing any of the current application state. This allows any player to get back in the game without fear of loosing
the match because of a sloppy internet connection.</p>

<p>When this event is dispatched the API enter a &ldquo;freeze&rdquo; mode where no new requests can be sent until the reconnection is
successfully performed. It is highly recommended to handle this event and freeze your application interface accordingly until the
onConnectionResume: event is fired.</p>

<p>The following example shows how to handle a reconnection</p>

<pre><code> -(void)onConnectionRetry:(SFSEvent *)evt
 {
    // Freeze your GUI and provide some feedback to the Player
 }

 -(void)onConnectionResume:(SFSEvent *)evt
 {
    // Unfreeze the GUI and let the player continue with the game...
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConnectionLost:">- onConnectionLost:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnectionResume:">- onConnectionResume:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnection:">- onConnection:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onDebugMessage:" title="onDebugMessage:"></a>
	<h3 class="subsubtitle method-title">onDebugMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a console message from the logger</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onDebugMessage:(LoggerEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(String) the debug message.</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a console message from the logger</p>
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onExtensionResponse:" title="onExtensionResponse:"></a>
	<h3 class="subsubtitle method-title">onExtensionResponse:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired every time a server-side Extension sends a message, usually in response to an ExtensionRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onExtensionResponse:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>cmd</em></dt>
			<dd><p>(NSString *) the name of the &ldquo;command&rdquo; (or &ldquo;action id&rdquo;) associated with the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>params</em></dt>
			<dd><p>(INSSFSObject *) custom parameters</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired every time a server-side Extension sends a message, usually in response to an ExtensionRequest.</p>

<p>(A server Extension can send messages at any moment, not just in response to a specific client request)</p>

<pre><code> -(void)onExtensionResponse:(SFSEvent *)evt
 {
     NSArray *keys = [evt.params allKeys];
     for (NSString *key in keys)
     {
         NSLog(@"%@: %@", key, [evt.params objectForKey:key]);
     }
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ExtensionRequest.html">ExtensionRequest</a></p></code></li>
			
			<li><code><p><a href="../Classes/SFSObject.html">SFSObject</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onInvitation:" title="onInvitation:"></a>
	<h3 class="subsubtitle method-title">onInvitation:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired when another User has sent you an Invitation</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onInvitation:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>invitation</em></dt>
			<dd><p>(SFSInvitation *) the invitation object</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired when another User has sent you an Invitation</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/InviteUsersRequest.html">InviteUsersRequest</a></p></code></li>
			
			<li><code><p><a href="../Classes/SFSInvitation.html">SFSInvitation</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onInvitationReply:" title="onInvitationReply:"></a>
	<h3 class="subsubtitle method-title">onInvitationReply:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired when a User sends a reply to your Invitation</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onInvitationReply:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>invitee</em></dt>
			<dd><p>(SFSUser) the User that was invited</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>reply</em></dt>
			<dd><p>(NSNumber *) the <i>reply code</i>. It can be either InvitationReply.ACCEPT or InvitationReply.REFUSE</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) additional custom paramters (e.g. a reason for the refusal, a message etc&hellip;)</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired when a User sends a reply to your Invitation</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/InvitationReply.html">InvitationReply</a></p></code></li>
			
			<li><code><p><a href="../Classes/InviteUsersRequest.html">InviteUsersRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onInvitationReplyError:" title="onInvitationReplyError:"></a>
	<h3 class="subsubtitle method-title">onInvitationReplyError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed InvitationReplyRequest
The failure is usually caused by a late reply which doesn&rsquo;t make it to the server within the expected time</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onInvitationReplyError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed InvitationReplyRequest
The failure is usually caused by a late reply which doesn&rsquo;t make it to the server within the expected time</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/InvitationReplyRequest.html">InvitationReplyRequest</a></p></code></li>
			
			<li><code><p><a href="../Classes/InviteUsersRequest.html">InviteUsersRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onLogin:" title="onLogin:"></a>
	<h3 class="subsubtitle method-title">onLogin:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched in response to a login request.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onLogin:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>user</em></dt>
			<dd><p>(SFSUser *) the User object</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>zone</em></dt>
			<dd><p>(NSString *) the zone</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) a custom object with extra params (if you have added custom server side logic)</p>

<p>The following example shows how to handle a login event</p>

<pre><code> -(void)onLogin:(SFSEvent *)evt
 {
     NSLog(@"Hi, I have just logged in as: %@" + [[evt.params objectForKey:@"user"] name]);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched in response to a login request.</p>

<p>The params object may contain the following keys.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onLoginError:">- onLoginError:</a></p></code></li>
			
			<li><code><p><a href="../Classes/LoginRequest.html">LoginRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onLoginError:" title="onLoginError:"></a>
	<h3 class="subsubtitle method-title">onLoginError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched in response to a failed login request.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onLoginError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p>

<pre><code> -(void)onLoginError:(SFSEvent *)evt
 {
     NSLog(@"Login Failed. Reason: %@" ,[evt.params objectForKey:@"errorMessage"]);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched in response to a failed login request.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onLogin:">- onLogin:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/LoginRequest.html">LoginRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onLogout:" title="onLogout:"></a>
	<h3 class="subsubtitle method-title">onLogout:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched in response to a logout request.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onLogout:(SFSEvent *)<em>evt</em></code></div>

    
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched in response to a logout request.</p>

<p>Usually this event needs to be handled when you want to logout from the current Zone and join another one.
In order to perform the operation correctly you need to do as follows:</p>

<ul>
<li>Send a LogoutRequest to the Server</li>
<li>Handle the onLogout event on the client</li>
<li>Perform a new login in the new Zone</li>
</ul>


<p>No parameters are passed for this event</p>

<pre><code> -(void)onLogout:(SFSEvent *)evt
 {
    NSLog(@"Logout was successful");
    // Proceed with more logic here...
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/LogoutRequest.html">LogoutRequest</a></p></code></li>
			
			<li><code><p><a href="../Classes/LoginRequest.html">LoginRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onMMOItemVariablesUpdate:" title="onMMOItemVariablesUpdate:"></a>
	<h3 class="subsubtitle method-title">onMMOItemVariablesUpdate:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a server side SetMMOItemVariables.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onMMOItemVariablesUpdate:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom*) the room in which the event occurred</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>mmoItem</em></dt>
			<dd><p>(MMOItem*) the item whose variables where changed</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>changedVars</em></dt>
			<dd><p>(NSArray*) an array of variable names that were changed</p>

<p>The following example shows how handle the event:</p>

<pre><code> -(void)onMMOItemVariablesUpdate:(SFSEvent *)evt
 {
     IMMOItem* mmoItem = [evt.params objectForKey:@"mmoItem"]; 
     NSArray* changedVars = [evt.params objectForKey:@"changedVars"];

     for (NSString* varName in changedVars)
     {
        MMOItemVariable* itemVar = [mmoItem getVariable: varName];

        // Handle the new value
     }
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a server side SetMMOItemVariables.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/MMOItemVariable.html">MMOItemVariable</a></p></code></li>
			
			<li><code><p><a href="../Classes/MMOItem.html">MMOItem</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onModeratorMessage:" title="onModeratorMessage:"></a>
	<h3 class="subsubtitle method-title">onModeratorMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired when a User receives a Moderator message.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onModeratorMessage:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>sender</em></dt>
			<dd><p>(SFSUser *) the sender of the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(NSString *) the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) an object with custom data</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired when a User receives a Moderator message.</p>

<pre><code> -(void)onModeratorMessage:(SFSEvent *)evt
 {
    SFSUser *sender = [evt.params objectForKey:@"sender"];
    NSLog(@"Moderator says: %@, from: %@", [evt.params objectForKey:@"message"], sender.name);
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ModeratorMessageRequest.html">ModeratorMessageRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onObjectMessage:" title="onObjectMessage:"></a>
	<h3 class="subsubtitle method-title">onObjectMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is received when a User has sent an ObjectMessage request</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onObjectMessage:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>sender</em></dt>
			<dd><p>(SFSUser *) the sender of the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(SFSObject *) the object data</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is received when a User has sent an ObjectMessage request</p>

<p>The object sent by the sender can contain custom data, such as a game move etc&hellip;</p>

<pre><code> -(void)onObjectMessage:(SFSEvent *)evt
 {
    SFSObject *obj = [evt.params objectForKey:@"message"];
    NSLog(@"Received data: %@", [obj getDump]);
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ObjectMessageRequest.html">ObjectMessageRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onPingPong:" title="onPingPong:"></a>
	<h3 class="subsubtitle method-title">onPingPong:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired at regular intervals when the LagMonitor is active</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onPingPong:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>lagValue</em></dt>
			<dd><p>(NSNumber) the average of the last measured lag values, expressed in milliseconds.</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired at regular intervals when the LagMonitor is active</p>
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onPlayerToSpectator:" title="onPlayerToSpectator:"></a>
	<h3 class="subsubtitle method-title">onPlayerToSpectator:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a successful PlayerToSpectatorRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onPlayerToSpectator:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room where the player became a spectator</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>user</em></dt>
			<dd><p>(SFSUser *) the User who became a spectator</p>

<pre><code> //This is how to dispatch the event
 -(void)switchPlayerToSpectator
 {
     [client send:[PlayerToSpectatorRequest requestWithTargetRoom:nil]];
 } 

 //This is how to handle the event
 -(void)onPlayerToSpectator:(SFSEvent *)evt 
 {
     NSLog(@"Hi, I'm handling an onPlayerToSpectator event. My params are %@",evt.params);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a successful PlayerToSpectatorRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/PlayerToSpectatorRequest.html">PlayerToSpectatorRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onPlayerToSpectatorError:" title="onPlayerToSpectatorError:"></a>
	<h3 class="subsubtitle method-title">onPlayerToSpectatorError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed PlayerToSpectatorRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onPlayerToSpectatorError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p>

<pre><code> //This is how to handle the event
 -(void)onSpectatorToPlayerError:(SFSEvent *)evt 
 {
     NSLog(@"Hi, I'm handling an onPlayerToSpectatorError event. My params are %@",evt.params); 
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed PlayerToSpectatorRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/PlayerToSpectatorRequest.html">PlayerToSpectatorRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onPrivateMessage:" title="onPrivateMessage:"></a>
	<h3 class="subsubtitle method-title">onPrivateMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired when a User receives a private message.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onPrivateMessage:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>sender</em></dt>
			<dd><p>(SFSUser *) the sender of the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(NSString *) the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) an object with custom data</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired when a User receives a private message.</p>

<pre><code> -(void)onPrivateMessage:(SFSEvent *)evt
 {
    SFSUser *sender = [evt.params objectForKey:@"sender"];
    NSLog(@"PM: %@, from: %@", [evt.params objectForKey:@"message"], sender.name);
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/PrivateMessageRequest.html">PrivateMessageRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onProximityListUpdate:" title="onProximityListUpdate:"></a>
	<h3 class="subsubtitle method-title">onProximityListUpdate:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a SetUserPositionRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onProximityListUpdate:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>addedUsers</em></dt>
			<dd><p>(NSArray *) A list of User objects representing the users who entered the current user&rsquo;s Area of Interest.</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>removedUsers</em></dt>
			<dd><p>(NSArray *) A list of User objects representing the users who left the current user&rsquo;s Area of Interest.</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>addedItems</em></dt>
			<dd><p>(NSArray *) A list of MMOItem objects which entered the current user&rsquo;s Area of Interest.</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>removedItems</em></dt>
			<dd><p>(NSArray *) A list of MMOItem objects which left the current user&rsquo;s Area of Interest.</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom*) The room where the event occurred</p>

<p>The following example shows how to set the position in virtual world and handle the proximity list event:</p>

<pre><code>[smartFox send:[SetUserPositionRequest requestWithPosition:[[Vec3D alloc] initWithX:@10 Y:@20 Z:@10] mmoRoom: [smartFox lastJoinedRoom]]];

 -(void)onProximityListUpdate:(SFSEvent *)evt
 {
     NSArray* addedUsers = [evt.params objectForKey:@"addedUsers"];
     NSArray* removedUsers = [evt.params objectForKey:@"removedUsers"];

     NSArray* addedItems = [evt.params objectForKey:@"addedItems"];
     NSArray* removedItems = [evt.params objectForKey:@"removedItems"];

     //Trace the number of changes for each list
     NSLog(@"ProxyUpdate: %d, %d, %d, %d", addedUsers.count, removedUsers.count, addedItems.count, removedItems.count);

    //Proceed with rendering the users and items on screen
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a SetUserPositionRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/MMORoom.html">MMORoom</a></p></code></li>
			
			<li><code><p><a href="../Classes/MMOItem.html">MMOItem</a></p></code></li>
			
			<li><code><p><a href="../Classes/SetUserPositionRequest.html">SetUserPositionRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onPublicMessage:" title="onPublicMessage:"></a>
	<h3 class="subsubtitle method-title">onPublicMessage:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired when a User sends a public message.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onPublicMessage:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the target Room</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>sender</em></dt>
			<dd><p>(SFSUser *) the sender</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>message</em></dt>
			<dd><p>(NSString *) the message</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>data</em></dt>
			<dd><p>(SFSObject *) an object with custom data</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired when a User sends a public message.</p>

<p>Also the User receives this event every time he sends a public message.</p>

<pre><code> -(void)onPublicMessage:(SFSEvent *)evt
 {
    SFSUser *sender = [evt.params objectForKey:@"sender"];
    NSLog(@"%@: %@", sender.name, [evt.params objectForKey:@"message"]);
 }
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/PublicMessageRequest.html">PublicMessageRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomAdd:" title="onRoomAdd:"></a>
	<h3 class="subsubtitle method-title">onRoomAdd:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched when a new Room was created inside the Zone under any of the Room Groups that the User is listening for.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomAdd:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the room object</p>

<pre><code> -(void)onRoomAdd:(SFSEvent *)evt
 {
    NSLog(@"A new Room was added: %@", [evt.params objectForKey:@"room"]);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched when a new Room was created inside the Zone under any of the Room Groups that the User is listening for.</p>

<p>The  params object contains the following keys.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onRoomRemove:">- onRoomRemove:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/CreateRoomRequest.html">CreateRoomRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomCapacityChange:" title="onRoomCapacityChange:"></a>
	<h3 class="subsubtitle method-title">onRoomCapacityChange:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a ChangeRoomCapacityRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomCapacityChange:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room where the change occurred</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a ChangeRoomCapacityRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ChangeRoomCapacityRequest.html">ChangeRoomCapacityRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomCapacityChangeError:" title="onRoomCapacityChangeError:"></a>
	<h3 class="subsubtitle method-title">onRoomCapacityChangeError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed ChangeRoomCapacityRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomCapacityChangeError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed ChangeRoomCapacityRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ChangeRoomCapacityRequest.html">ChangeRoomCapacityRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomCreationError:" title="onRoomCreationError:"></a>
	<h3 class="subsubtitle method-title">onRoomCreationError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched in response to a failed create room request.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomCreationError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p>

<pre><code> -(void)onRoomCreationError:(SFSEvent *)evt
 {
    NSLog(@"Room Creation Error: %@", [evt.params objectForKey:@"errorMessage"]);   
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched in response to a failed create room request.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onRoomAdd:">- onRoomAdd:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/CreateRoomRequest.html">CreateRoomRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomFindResult:" title="onRoomFindResult:"></a>
	<h3 class="subsubtitle method-title">onRoomFindResult:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a FindRoomsRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomFindResult:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>rooms</em></dt>
			<dd><p>(NSArray *) a list of Rooms matching the request criteria. If no Room was found the list will be empty.</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a FindRoomsRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/FindRoomsRequest.html">FindRoomsRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomJoin:" title="onRoomJoin:"></a>
	<h3 class="subsubtitle method-title">onRoomJoin:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched in response to a JoinRoomRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomJoin:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the joined Room</p>

<pre><code> -(void)onRoomJoin:(SFSEvent *)evt
 {
    SFSRoom *room = [evt.params objectForKey:@"room"];
    NSLog(@"The Room %@ was successfully joined!", room.name);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched in response to a JoinRoomRequest.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onRoomJoinError:">- onRoomJoinError:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/JoinRoomRequest.html">JoinRoomRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomJoinError:" title="onRoomJoinError:"></a>
	<h3 class="subsubtitle method-title">onRoomJoinError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched in response to a failed JoinRoomRequest.</p>

<p>The params object contains the following parameters.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomJoinError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p>

<pre><code> -(void)onRoomJoinError:(SFSEvent *)evt
 {
    NSLog(@"Join Room Failure:  %@", [evt.params objectForKey:@"errorMessage"]);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched in response to a failed JoinRoomRequest.</p>

<p>The params object contains the following parameters.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onRoomJoinError:">- onRoomJoinError:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/JoinRoomRequest.html">JoinRoomRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomNameChange:" title="onRoomNameChange:"></a>
	<h3 class="subsubtitle method-title">onRoomNameChange:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a ChangeRoomNameRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomNameChange:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room where the change occurred</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>oldName</em></dt>
			<dd><p>(NSString *) the old Room name</p>

<pre><code> //This is how to handle the event
 -(void)onRoomNameChange:(SFSEvent *)evt 
 {
     NSLog(@"Hi, I'm handling an onRoomNameChange event. My params are %@",evt.params); 
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a ChangeRoomNameRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ChangeRoomNameRequest.html">ChangeRoomNameRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomNameChangeError:" title="onRoomNameChangeError:"></a>
	<h3 class="subsubtitle method-title">onRoomNameChangeError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed ChangeRoomNameRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomNameChangeError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed ChangeRoomNameRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ChangeRoomNameRequest.html">ChangeRoomNameRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomPasswordStateChange:" title="onRoomPasswordStateChange:"></a>
	<h3 class="subsubtitle method-title">onRoomPasswordStateChange:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a ChangeRoomPasswordStateRequest.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomPasswordStateChange:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room where the change occurred</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a ChangeRoomPasswordStateRequest.</p>

<p>In particular this event when the <b>password state</b> is changed. For example when a non-password protected Room is assigned a password, or vice-versa</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ChangeRoomPasswordStateRequest.html">ChangeRoomPasswordStateRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomPasswordStateChangeError:" title="onRoomPasswordStateChangeError:"></a>
	<h3 class="subsubtitle method-title">onRoomPasswordStateChangeError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed ChangeRoomPasswordStateRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomPasswordStateChangeError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed ChangeRoomPasswordStateRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/ChangeRoomPasswordStateRequest.html">ChangeRoomPasswordStateRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomRemove:" title="onRoomRemove:"></a>
	<h3 class="subsubtitle method-title">onRoomRemove:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is dispatched whenever a Room is removed from the Zone, under any of the Room Groups that the User is listening for.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomRemove:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the room object</p>

<pre><code> -(void)onRoomRemove:(SFSEvent *)evt
 {
    NSLog(@"A new Room was removed: %@", [evt.params objectForKey:@"room"]);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is dispatched whenever a Room is removed from the Zone, under any of the Room Groups that the User is listening for.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onRoomAdd:">- onRoomAdd:</a>(SFSEvent *)evt</p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onRoomVariablesUpdate:" title="onRoomVariablesUpdate:"></a>
	<h3 class="subsubtitle method-title">onRoomVariablesUpdate:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a SetRoomVariablesRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onRoomVariablesUpdate:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room in which the event occurred</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>changedVars</em></dt>
			<dd><p>(NSArray *) the list of variable names that where modified or created</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>roomId</em></dt>
			<dd><p>(NSNumber *) The id of the Room which the Extension is attached to (for Room Extensions only)</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a SetRoomVariablesRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SetRoomVariablesRequest.html">SetRoomVariablesRequest</a></p></code></li>
			
			<li><code><p><a href="../Classes/SFSRoomVariable.html">SFSRoomVariable</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onSpectatorToPlayer:" title="onSpectatorToPlayer:"></a>
	<h3 class="subsubtitle method-title">onSpectatorToPlayer:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a successful SpectatorToPlayerRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onSpectatorToPlayer:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room where the spectator became a player</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>user</em></dt>
			<dd><p>(SFSUser *) the User who became a player</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>playerId</em></dt>
			<dd><p>(NSNumber *) the new playerId of the User</p>

<pre><code> //This is how to dispatch the event
 -(void)switchSpectatorToPlayer
 {
     [client send:[SpectatorToPlayerRequest requestWithTargetRoom:nil]];
 } 

 //This is how to handle the event
 -(void)onSpectatorToPlayer:(SFSEvent *)evt 
 {
     NSLog(@"Hi, I'm handling an onSpectatorToPlayer event. My params are %@",evt.params); 
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a successful SpectatorToPlayerRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SpectatorToPlayerRequest.html">SpectatorToPlayerRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onSpectatorToPlayerError:" title="onSpectatorToPlayerError:"></a>
	<h3 class="subsubtitle method-title">onSpectatorToPlayerError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed SpectatorToPlayerRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onSpectatorToPlayerError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p>

<pre><code> //This is how to handle the event
 -(void)onSpectatorToPlayerError:(SFSEvent *)evt 
 {
     NSLog(@"Hi, I'm handling an onSpectatorToPlayerError event. My params are %@",evt.params); 
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed SpectatorToPlayerRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SpectatorToPlayerRequest.html">SpectatorToPlayerRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onSubscribeRoomGroup:" title="onSubscribeRoomGroup:"></a>
	<h3 class="subsubtitle method-title">onSubscribeRoomGroup:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a SubscribeRoomGroupRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onSubscribeRoomGroup:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>groupId</em></dt>
			<dd><p>(NSString *) the name of thr group that was subscribed</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>newRooms</em></dt>
			<dd><p>(NSArray *) the list of rooms contained in the new group</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a SubscribeRoomGroupRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SubscribeRoomGroupRequest.html">SubscribeRoomGroupRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onSubscribeRoomGroupError:" title="onSubscribeRoomGroupError:"></a>
	<h3 class="subsubtitle method-title">onSubscribeRoomGroupError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed SubscribeRoomGroupRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onSubscribeRoomGroupError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed SubscribeRoomGroupRequest</p>

<p>The params object contains the following parameters.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SubscribeRoomGroupRequest.html">SubscribeRoomGroupRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUDPSocketConnect:" title="onUDPSocketConnect:"></a>
	<h3 class="subsubtitle method-title">onUDPSocketConnect:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>The onUDPSocketConnect event is dispatched after a UDP connection has been attempted and either failed (0) or succedded (1) to establish a connection.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUDPSocketConnect:(SFSEvent *)<em>evt</em></code></div>

    
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>The onUDPSocketConnect event is dispatched after a UDP connection has been attempted and either failed (0) or succedded (1) to establish a connection.</p>

<p>The client will attempt to connect three (3) time before dispatching a failed event.</p>

<p>The following example shows how to handle the event</p>

<pre><code>-(void)onUDPSocketConnect:(SFSEvent *)evt
{
    if ([[evt.params objectForKey:@"success"] boolValue])
    {
        NSLog(@"UDP connected");
    }
    else
    {
        NSLog(@"UDP not connected");
    }
}
</code></pre>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onConnectionLost:">- onConnectionLost:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnectionResume:">- onConnectionResume:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onConnection:">- onConnection:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/UDPManager.html">UDPManager</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUnsubscribeRoomGroup:" title="onUnsubscribeRoomGroup:"></a>
	<h3 class="subsubtitle method-title">onUnsubscribeRoomGroup:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to an UnsubscribeRoomGroupRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUnsubscribeRoomGroup:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>groupId</em></dt>
			<dd><p>(NSString *) the name of the group that was unsubscribed.</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to an UnsubscribeRoomGroupRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/UnsubscribeRoomGroupRequest.html">UnsubscribeRoomGroupRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUnsubscribeRoomGroupError:" title="onUnsubscribeRoomGroupError:"></a>
	<h3 class="subsubtitle method-title">onUnsubscribeRoomGroupError:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a failed UnsubscribeRoomGroupRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUnsubscribeRoomGroupError:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>errorMessage</em></dt>
			<dd><p>(NSString *) the error message</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a failed UnsubscribeRoomGroupRequest</p>

<p>The params object contains the following parameters.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/UnsubscribeRoomGroupRequest.html">UnsubscribeRoomGroupRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUserCountChange:" title="onUserCountChange:"></a>
	<h3 class="subsubtitle method-title">onUserCountChange:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired whenever the number of users/spectators in a Room changes.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUserCountChange:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(Room</b>) the Room</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>uCount</em></dt>
			<dd><p>(NSNumber *) the new user count</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>sCount</em></dt>
			<dd><p>(NSNumber *) the new spectator count</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired whenever the number of users/spectators in a Room changes.</p>

<p>The client receives updates for all Rooms inside the Room Groups that he is listening to.</p>

<pre><code> -(void)onUserCountChange:(SFSEvent *)evt
 {
     SFSRoom *room = [evt.params objectForKey:@"room"];
     int uCount = [[evt.params objectForKey:@"uCount"] intValue];
     int sCount = [[evt.params objectForKey:@"sCount"] intValue];

     NSLog(@"Room: %@ contains %d users and %d spectators", room.name, uCount, sCount);     
 }
</code></pre>
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUserEnterRoom:" title="onUserEnterRoom:"></a>
	<h3 class="subsubtitle method-title">onUserEnterRoom:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired whenever a User enters one of the Rooms where the current User is joined.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUserEnterRoom:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>user</em></dt>
			<dd><p>(SFSUser *) the User object</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room object</p>

<pre><code> -(void)onUserEnterRoom:(SFSEvent *)evt
 {
    SFSRoom *room = [evt.params objectForKey:@"room"];
    SFSUser *user = [evt.params objectForKey:@"user"];
    NSLog(@"User: %@ has just joined Room: %@", user.name, room.name);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired whenever a User enters one of the Rooms where the current User is joined.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onUserExitRoom:">- onUserExitRoom:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onRoomJoin:">- onRoomJoin:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/JoinRoomRequest.html">JoinRoomRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUserExitRoom:" title="onUserExitRoom:"></a>
	<h3 class="subsubtitle method-title">onUserExitRoom:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired whenever a User leaves one of the Rooms where the current User is joined.</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUserExitRoom:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>user</em></dt>
			<dd><p>(SFSUser *) the User object</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>room</em></dt>
			<dd><p>(SFSRoom *) the Room object</p>

<pre><code> -(void)onUserExitRoom:(SFSEvent *)evt
 {
    SFSRoom *room = [evt.params objectForKey:@"room"];
    SFSUser *user = [evt.params objectForKey:@"user"];
    NSLog(@"User: %@ has just left Room: %@", user.name, room.name);
 }
</code></pre></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired whenever a User leaves one of the Rooms where the current User is joined.</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="#//api/name/onUserEnterRoom:">- onUserEnterRoom:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="#//api/name/onRoomJoin:">- onRoomJoin:</a>(SFSEvent *)evt</p></code></li>
			
			<li><code><p><a href="../Classes/LeaveRoomRequest.html">LeaveRoomRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUserFindResult:" title="onUserFindResult:"></a>
	<h3 class="subsubtitle method-title">onUserFindResult:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a FindUsersRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUserFindResult:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>users</em></dt>
			<dd><p>(NSArray *) a list of Users matching the request criteria. If no User was found the list will be empty.</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a FindUsersRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/FindUsersRequest.html">FindUsersRequest</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
						<div class="section-method">
	<a name="//api/name/onUserVariablesUpdate:" title="onUserVariablesUpdate:"></a>
	<h3 class="subsubtitle method-title">onUserVariablesUpdate:</h3>
	
	
	
	<div class="method-subsection brief-description">
		<p>This event is fired in response to a SetUserVariablesRequest</p>
	</div>		
	
    

	<div class="method-subsection method-declaration"><code>- (void)onUserVariablesUpdate:(SFSEvent *)<em>evt</em></code></div>

    
	
	<div class="method-subsection arguments-section parameters">
		<h4 class="method-subtitle parameter-title">Parameters</h4>
		
		<dl class="argument-def parameter-def">
			<dt><em>user</em></dt>
			<dd><p>(SFSUser *) the User that created or modified the Variables</p></dd>
		</dl>
		
		<dl class="argument-def parameter-def">
			<dt><em>changedVars</em></dt>
			<dd><p>(NSArray *) the list of variable names that where modified or created</p></dd>
		</dl>
		
	</div>
	
	
	
	
	
	
	
	<div class="method-subsection discussion-section">
		<h4 class="method-subtitle">Discussion</h4>
		<p>This event is fired in response to a SetUserVariablesRequest</p>
	</div>
	
	
	
	
	
	<div class="method-subsection see-also-section">
		<h4 class="method-subtitle">See Also</h4>
		<ul>
			
			<li><code><p><a href="../Classes/SetUserVariablesRequest.html">SetUserVariablesRequest</a></p></code></li>
			
			<li><code><p><a href="../Classes/SFSUserVariable.html">SFSUserVariable</a></p></code></li>
			
		</ul>
	</div>
	
	
	
	<div class="method-subsection declared-in-section">
		<h4 class="method-subtitle">Declared In</h4>
		<code class="declared-in-ref">ISFSEvents.h</code><br />
	</div>				
	
	
</div>
						
					</div>
					
					
                    
                    
				</div>
				<div class="main-navigation navigation-bottom">
					<ul>
	<li><a href="../index.html">Index</a></li>
	<li><a href="../hierarchy.html">Hierarchy</a></li>
</ul>
				</div>
				<div id="footer">
					<hr />
					<div class="footer-copyright">
						<p><span class="copyright">&copy; 2014 gotoAndPlay() / A51 Integrated. All rights reserved. (Last updated: 2014-10-13)</span><br />
						
						<span class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2 (build 963)</a>.</span></p>
						
					</div>
				</div>
			</div>
		</article>
		<script type="text/javascript">
			function jumpToChange()
			{
				window.location.hash = this.options[this.selectedIndex].value;
			}
			
			function toggleTOC()
			{
				var contents = document.getElementById('contents');
				var tocContainer = document.getElementById('tocContainer');
				
				if (this.getAttribute('class') == 'open')
				{
					this.setAttribute('class', '');
					contents.setAttribute('class', '');
					tocContainer.setAttribute('class', '');
					
					window.name = "hideTOC";
				}
				else
				{
					this.setAttribute('class', 'open');
					contents.setAttribute('class', 'isShowingTOC');
					tocContainer.setAttribute('class', 'isShowingTOC');
					
					window.name = "";
				}
				return false;
			}
			
			function toggleTOCEntryChildren(e)
			{
				e.stopPropagation();
				var currentClass = this.getAttribute('class');
				if (currentClass == 'children') {
					this.setAttribute('class', 'children open');
				}
				else if (currentClass == 'children open') {
					this.setAttribute('class', 'children');
				}
				return false;
			}
			
			function tocEntryClick(e)
			{
				e.stopPropagation();
				return true;
			}
			
			function init()
			{
				var selectElement = document.getElementById('jumpTo');
				selectElement.addEventListener('change', jumpToChange, false);
				
				var tocButton = document.getElementById('table_of_contents');
				tocButton.addEventListener('click', toggleTOC, false);
				
				var taskTreeItem = document.getElementById('task_treeitem');
				if (taskTreeItem.getElementsByTagName('li').length > 0)
				{
					taskTreeItem.setAttribute('class', 'children');
					taskTreeItem.firstChild.setAttribute('class', 'disclosure');
				}
				
				var tocList = document.getElementById('toc');
				
				var tocEntries = tocList.getElementsByTagName('li');
				for (var i = 0; i < tocEntries.length; i++) {
					tocEntries[i].addEventListener('click', toggleTOCEntryChildren, false);
				}
				
				var tocLinks = tocList.getElementsByTagName('a');
				for (var i = 0; i < tocLinks.length; i++) {
					tocLinks[i].addEventListener('click', tocEntryClick, false);
				}
				
				if (window.name == "hideTOC") {
					toggleTOC.call(tocButton);
				}
			}
			
			window.onload = init;
			
			// If showing in Xcode, hide the TOC and Header
			if (navigator.userAgent.match(/xcode/i)) {
				document.getElementById("contents").className = "hideInXcode"
				document.getElementById("tocContainer").className = "hideInXcode"
				document.getElementById("top_header").className = "hideInXcode"
			}
			
		</script>
	</body>
</html>